//引入vue和vuex
import Vue from 'vue';
import Vuex from 'vuex';
//使用vuex,引入之后用Vue.use进行引用
Vue.use(Vuex);
//通过上面的三行代码,vuex就算引用成功了

const state = {
  count : 1
}

const getters = {
    count:function (state) {
        return state.count += 100;
    }
}




//这里的mutations是固定的写法,意思是改变的
//就是改变当前仓库里面的数据增加的方法
const mutations = {
  add(state,n){
    state.count+=n;
  },
  reduce(state){
    state.count--;
  }
}

const actions = {
  //context代表的是上下文
  addAction(context){
    context.commit('add',10);
    console.log('我比reduce提前执行');
    setTimeout(() => context.commit('reduce'),3000)
  },
  reduceAction({commit}){
      commit('reduce')
  }
}


const moduleA = {
  state,
  mutations,
  getters,
  actions
}

//使用export default 封装代码，让外部可以引用
export default new Vuex.Store({
    modules:{a:moduleA}
})



